Дан граф с n вершинами, пронумерованных от 1 до n. Определите, является ли граф деревом или нет.
Входные данные:
Первая строка содержит два целых числа n (2 ≤ n ≤ 10^5) и m (1 ≤ n ≤ 10^5) - количество вершин и ребер соответственно.
Далее следует m строк. i-я из них содержит два целых числа vi и ui (1 ≤ vi,
ui ≤ n, vi ≠ ui) — номера вершин, между которыми есть ребро.
Выходные данные:
Выведите yes, если граф является деревом, иначе no.
Пример:
Ввод | Вывод |
5 4 1 2 1 3 5 2 2 4 |
yes |
5 5 1 2 3 1 2 4 5 2 1 5 |
no |
Дан граф с n вершинами, пронумерованных от 1 до n. Выведите все вершины, у которых имеются более 1 предка.
Предок вершины v — это вершина, из которой исходит ребро, заходящее в вершину v.
Входные данные:
Первая строка содержит два целых числа n (2 ≤ n ≤ 10^5) и m (1 ≤ n ≤ 10^5) - количество вершин и ребер соответственно.
Далее следует m строк. i-я из них содержит два целых числа vi и ui (1 ≤ vi,
ui ≤ n, vi ≠ ui) — номера вершин, между которыми есть ребро.
Выходные данные:
Выведите номера вершин, у которых более одного предка, если таких вершин нет, то выведите -1.
Пример:
Ввод | Вывод |
5 6 1 2 1 3 4 3 4 5 5 3 2 4 |
4 5 |
7 5 1 2 3 4 5 3 1 3 6 7 |
-1 |
Дан граф с n вершинами, пронумерованных от 1 до n. Найдите самую отдаленную вершину от вершины k.
Гарантируется, что такая вершина есть.
Входные данные:
Первая строка содержит три целых числа n (2 ≤ n ≤ 10^5), m (1 ≤ n ≤ 10^5) и k (1 ≤ n ≤ 10^5) - количество вершин
,ребер и вершина k соответственно.
Далее следует m строк. i-я из них содержит два целых числа vi и ui (1 ≤ vi,
ui ≤ n, vi ≠ ui) — номера вершин, между которыми есть ребро.
Выходные данные:
Выведите номер вершины, которая находится дальше всех от вершины k.
Пример:
Ввод | Вывод |
8 6 2 1 2 7 8 4 3 1 3 3 5 6 5 |
6 |
Code.C
© Copyright Павел Калашников 2021
обратная связь code.c04@mail.ru